package callnumber.gtdev5.com.photoVault.utils;

import android.content.Intent;

import java.net.URLEncoder;
import java.util.Iterator;
import java.util.LinkedHashMap;

import callnumber.gtdev5.com.photoVault.base.BaseActivity;


/**
 * Created by Administrator on 2017/12/28.
 */

/**
 *      工具类
 */
public class Apputils {
    public static String TAG = "Apputils";
    //public static List<CommLockInfo> mLists = null;

    /**
     *          获取手机上所有安装应用的信息
     * @param packageManager        文件包管理器
     * @return      所有手机信息
     */
//    public static List<CommLockInfo> getAllAPK(PackageManager packageManager){
//        try {
//            if (mLists == null) mLists = new ArrayList<>();else mLists.clear();
//            List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0);
//            for (int i = 0; i < packageInfoList.size(); i++) {
//                PackageInfo packageInfo = packageInfoList.get(i);
//                CommLockInfo info = new CommLockInfo();
//                //如果图片或者名字为空直接跳过
//                if (packageInfo.applicationInfo.loadLabel(packageManager) == null || packageInfo.applicationInfo.loadIcon(packageManager) == null){
//                    continue;
//                }
//                //如果是系统应用就过滤掉
//                if ((ApplicationInfo.FLAG_SYSTEM & packageInfo.applicationInfo.flags) != 0){
//                    continue;
//                }
//                info.setpackageName(packageInfo.packageName);
//                info.setAppName(String.valueOf(packageInfo.applicationInfo.loadLabel(packageManager)));
//                info.setAppInfo(packageManager.getApplicationInfo(packageInfo.packageName,PackageManager.GET_UNINSTALLED_PACKAGES));
//                mLists.add(info);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return mLists;
//    }

    /**
     * Home键操作
     */
    public static void goHome(BaseActivity activity) {
        Intent homeIntent = new Intent(Intent.ACTION_MAIN);
        homeIntent.addCategory(Intent.CATEGORY_HOME);
        activity.startActivity(homeIntent);
        activity.finish();
    }

    /**
     *      判断是否是中国电信,联通,移动的正确电话号码
     * @param phone
     * @return
     */
    public static boolean isPhone(String phone){
        if (phone == null){
            return false;
        }
        	/*
	    移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
	    联通：130、131、132、152、155、156、185、186
	    电信：133、153、180、189、（1349卫通）
	    */
        String telRegex = "[1][3578]\\d{9}";
        return phone.matches(telRegex);
    }

//    public static ArrayList<CommLockInfo> getData(CommLockInfoManager mLockInfoManager, PackageManager mPackageManager){
//        ArrayList<CommLockInfo> mDatas = new ArrayList<>();
//        List<CommLockInfo> commLockInfos = mLockInfoManager.getAllCommLockInfos();
//        Iterator<CommLockInfo> iterator = commLockInfos.iterator();
//
//        while (iterator.hasNext()){
//            CommLockInfo info = iterator.next();
//            try {
//                ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(info.getPackageName(), PackageManager.GET_UNINSTALLED_PACKAGES);
//                if (applicationInfo.packageName.equals("com.gtdev5.app_lock")){
//                    continue;
//                }
//                if (applicationInfo == null || mPackageManager.getApplicationIcon(applicationInfo) == null){
//                    iterator.remove();
//                    continue;
//                }else {
//                    info.setAppInfo(applicationInfo);
//                    //如果是系统应用就过滤掉
////                        if ((ApplicationInfo.FLAG_SYSTEM & applicationInfo.flags) != 0){
////                            info.setSysApp(true);
////                            info.setTopTitle("系统应用");
////                        }else {
////                            info.setSysApp(false);
////                            info.setTopTitle("第三方应用");
////                        }
//                    if ((ApplicationInfo.FLAG_SYSTEM & applicationInfo.flags) != 0){
//                        info.setExplain("系统应用");
//                    }
//                    else if (applicationInfo.packageName.equals("com.tencent.mm") || applicationInfo.packageName.equals("com.tencent.mqq")){
//                        info.setExplain("防止他人查看聊天记录");
//                    }else {
//                        info.setExplain("第三方应用");
//                    }
//
//                }
//                switch (info.getpackageName()){
//                    case "com.tencent.mm":
//                        mDatas.add(0,info);
//                        break;
//                    case "com.tencent.mqq":
//                        mDatas.add(1,info);
//                        break;
//                    case "com.sina.weibo":
//                        mDatas.add(2,info);
//                        break;
//                    case "com.android.camera":
//                        mDatas.add(3,info);
//                        break;
//                    case "com.android.gallery3d":
//                        mDatas.add(4,info);
//                        break;
//                    case "com.android.contacts":
//                        mDatas.add(5,info);
//                        break;
//                    default:
//                        mDatas.add(info);
//                        break;
//                }
////                mDatas.add(info);
//            } catch (Exception e) {
//                e.printStackTrace();
//                iterator.remove();
//            }
//        }
//        return mDatas;
//    }
    /**
     * 为HttpGet 的 url 方便的添加多个name value 参数。
     * @param url
     * @param params
     * @return
     */
    public static String attachHttpGetParams(String url, LinkedHashMap<String,String> params){
        Iterator<String> keys = params.keySet().iterator();
        Iterator<String> values = params.values().iterator();
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("?");

        for (int i=0;i<params.size();i++ ) {
            String value = null;
            try {
                value= URLEncoder.encode(values.next(),"utf-8");
            }catch (Exception e){
                e.printStackTrace();
            }

            stringBuffer.append(keys.next()+"="+value);
            if (i!=params.size()-1) {
                stringBuffer.append("&");
            }

        }

        return url + stringBuffer.toString();
    }
}
